﻿Imports EguSoc.Tablas_Cargadas
Imports EguSoc_Dll

Public Class FES_Sobres
    Private TA_Articulos As New ArticulosTableAdapter
    Private TA_Cabecera_Sobre As New Cabecera_SobreTableAdapter
    Private TA_Linea_Sobre As New Linea_SobreTableAdapter
    Private TA_Articulos_Sobres As New Articulos_SobresTableAdapter

    Private DT_Articulo_compra As New Articulo_Compra

    Private auxSocio As String
    Private auxTiposobre As String
    Private strSocio As String
    Private DR_Aux_Sobres As DSEA.Cabecera_SobreRow

    Private Sub PersonasTxtBoxNumeric_LostFocus() Handles PersonasTxtBoxNumeric.LostFocus
        Guarda_Datos()
    End Sub

    Private Sub FEA_Sobres_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            carga_articulos()
            Carga_Datos()
            SPCSobres.Panel1.Focus()

            TSBRefrescos.Enabled = True
            TSBRefrescos.BackColor = Color.SlateGray
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Public Sub New(ByVal Socio As String, ByVal Tipo_Sobre As String)
        Try
            auxSocio = Socio
            auxTiposobre = Tipo_Sobre
            ' Llamada necesaria para el diseñador.
            InitializeComponent()

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub Gasto_CocinaCheckBox_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Gasto_CocinaCheckBox.Click
        Try
            Guarda_Datos()
            Refresca_Datos()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub BtnX_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnX1.Click, BtnX2.Click, BtnX3.Click, BtnX4.Click, BtnX5.Click, BtnX6.Click, BtnX7.Click, BtnX8.Click, BtnX9.Click, BtnX10.Click
        Dim intUnidades As Integer = 0

        Try
            Select Case sender.ToString
                Case BtnX1.ToString
                    intUnidades = 1
                Case BtnX2.ToString
                    intUnidades = 2
                Case BtnX3.ToString
                    intUnidades = 3
                Case BtnX4.ToString
                    intUnidades = 4
                Case BtnX5.ToString
                    intUnidades = 5
                Case BtnX6.ToString
                    intUnidades = 6
                Case BtnX7.ToString
                    intUnidades = 7
                Case BtnX8.ToString
                    intUnidades = 8
                Case BtnX9.ToString
                    intUnidades = 9
                Case BtnX10.ToString
                    intUnidades = 10
            End Select

            TA_Linea_Sobre.Nueva_Linea(Cabecera_SobreBindingSource.Current.Row, DS.Linea_Sobre, DS.Articulos_Sobres, DT_Articulo_compra, intUnidades)

            CrtUnidades.Enabled = False
            GridArticulos.Enabled = True
            TiposArticuloTlS.Enabled = True

            Me.Cabecera_SobreBindingSource.Current.ROW.Recalcula_Total(DS.Linea_Sobre)

            GBICubatas.Enabled = True
            GBICubatas.BackColor = Color.SlateGray
            GBIRefrescos.Enabled = False

            CrtUnidades.BackColor = System.Drawing.SystemColors.Control

            TA_Linea_Sobre.FillByCompleta(DS.Linea_Sobre, TryCast(Cabecera_SobreBindingSource.Current.Row, DSEA.Cabecera_SobreRow).Sobre)

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub Cambia_Color_Selec(ByVal Tsb_aux As ToolStripButton)
        Try
            TSB_Cafes.BackColor = System.Drawing.SystemColors.Control
            TSB_Copas.BackColor = System.Drawing.SystemColors.Control
            TSB_Combinados.BackColor = System.Drawing.SystemColors.Control
            TSBRefrescos.BackColor = System.Drawing.SystemColors.Control
            TSBBotellasCompletas.BackColor = System.Drawing.SystemColors.Control
            TSBTapones.BackColor = System.Drawing.SystemColors.Control

            Tsb_aux.BackColor = Color.SlateGray
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

#Region "Eventos de las Cabeceras"

    Private Sub ToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSB_Copas.Click, TSB_Cafes.Click, TSB_Combinados.Click, TSBRefrescos.Click, TSBBotellasCompletas.Click, TSBTapones.Click
        Dim TSB_Aux As ToolStripButton = TryCast(sender, ToolStripButton)
        Try

            Select Case TSB_Aux.ToString
                Case TSB_Cafes.ToString
                    Cambia_Color_Selec(TSB_Cafes)
                    TA_Articulos.FillByTipo_Articulo(DS.Articulos, 1, 0) ''Cafés y otros
                Case TSB_Copas.ToString
                    Cambia_Color_Selec(TSB_Copas)
                    TA_Articulos.FillByTipo_Articulo(DS.Articulos, 3, 4) ''Copas
                Case TSB_Combinados.ToString()
                    Cambia_Color_Selec(TSB_Combinados)
                    GridArticulos.Visible = False
                    SpcCombinados.Visible = True
                    GBICubatas.BackColor = Color.SlateGray
                Case TSBRefrescos.ToString
                    Cambia_Color_Selec(TSBRefrescos)
                    TA_Articulos.FillByTipo_Articulo(DS.Articulos, 2, 0) ''Refrescos
                Case TSBBotellasCompletas.ToString
                    Cambia_Color_Selec(TSBBotellasCompletas)
                    TA_Articulos.FillByTipo_Articulo(DS.Articulos, 3, 4) ''Botellas Completas
                Case TSBTapones.ToString
                    Cambia_Color_Selec(TSBTapones)
                    TA_Articulos.FillByTipo_Articulo(DS.Articulos, 3, 0) ''Copas
            End Select

            If TSB_Aux.ToString <> TSB_Combinados.ToString() Then
                GridArticulos.Visible = True
                SpcCombinados.Visible = False
                GridArticulos.Refrescar_Datos()
            End If

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub ToolStripExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSExit.Click
        Try
            Guarda_Datos()

            Me.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub TSBPagar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBPagar.Click
        Try
            If MessageBox.Show("¿Esta seguro que desea PAGAR el sobre?", My.Settings.Cabezeras_Mensaje, MessageBoxButtons.YesNo) = vbYes Then
                TA_Cabecera_Sobre.Pagar_Sobre(Cabecera_SobreBindingSource.Current.row)
                Me.Guarda_Datos()
                Me.Close()
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub TSBBorrar_Linea_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBBorrar_Linea.Click
        Try
            TA_Linea_Sobre.Borrar_Linea(Linea_SobreBindingSource.Current.Row)
            Me.Guarda_Datos()
            Refresca_Datos()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub TSBCuenta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBCuenta.Click
        Try
            If MessageBox.Show("¿Esta seguro que desea PAGAR POR CUENTA el sobre?", My.Settings.Cabezeras_Mensaje, MessageBoxButtons.YesNo) = vbYes Then
                TA_Cabecera_Sobre.Pagar_Por_Cuenta(Cabecera_SobreBindingSource.Current.row)
                Me.Guarda_Datos()
                Me.Close()
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub TSBBorrarSobre_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBBorrarSobre.Click
        Try
            If MessageBox.Show("Estás seguro que quieres ELIMINAR el sobre actual", My.Settings.Cabezeras_Mensaje, MessageBoxButtons.YesNo) = vbYes Then
                TA_Cabecera_Sobre.Borrar_sobre(Cabecera_SobreBindingSource.Current.Row)
                Me.Close()
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub TSEliminarUnidad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSEliminarUnidad.Click
        Try
            Try
                TA_Linea_Sobre.Borrar_Unidad(Linea_SobreBindingSource.Current.Row)
                Me.Guarda_Datos()
                Refresca_Datos()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub TSComparteSobre_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSComparteSobre.Click
        Try
            Dim SocioSobre As New FES_Socios_Sobres

            SocioSobre.Sobre = TryCast(Cabecera_SobreBindingSource.Current.Row, DSEA.Cabecera_SobreRow).Sobre

            SocioSobre.Show()
        Catch ex As Exception
            MessageBox.Show(Err.Description)
        End Try
    End Sub
#End Region

#Region "Eventos de los Grids"

    Private Sub GridArticulos_Cambia_Valor() Handles GridArticulos.Cambia_Valor
        Try
            If TSBTapones.BackColor = Color.SlateGray Then
                DT_Articulo_compra.Añade_Articulo(GridArticulos.Devuelve_Valor, DSEA.Tipo_Venta_Articulo.Tapon)
            ElseIf TSBBotellasCompletas.BackColor = Color.SlateGray Then
                DT_Articulo_compra.Añade_Articulo(GridArticulos.Devuelve_Valor, DSEA.Tipo_Venta_Articulo.Botella)
            ElseIf TSB_Copas.BackColor = Color.SlateGray Then
                DT_Articulo_compra.Añade_Articulo(GridArticulos.Devuelve_Valor, DSEA.Tipo_Venta_Articulo.Copa)
            ElseIf TSBRefrescos.BackColor = Color.SlateGray Then
                DT_Articulo_compra.Añade_Articulo(GridArticulos.Devuelve_Valor, DSEA.Tipo_Venta_Articulo.Refresco)
            ElseIf TSB_Cafes.BackColor = Color.SlateGray Then
                DT_Articulo_compra.Añade_Articulo(GridArticulos.Devuelve_Valor, DSEA.Tipo_Venta_Articulo.Cafes_Y_Otros)
            End If

            CrtUnidades.Enabled = True
            GridArticulos.Enabled = False
            TiposArticuloTlS.Enabled = False
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub GBICubatas_Cambia_Valor() Handles GBICubatas.Cambia_Valor
        Try
            DT_Articulo_compra.Añade_Articulo(GBICubatas.Devuelve_Valor, DSEA.Tipo_Venta_Articulo.Combinado)

            TiposArticuloTlS.Enabled = False
            GBICubatas.Enabled = False
            GBIRefrescos.Enabled = True
            GBIRefrescos.BackColor = Color.SlateGray
            GBICubatas.BackColor = System.Drawing.SystemColors.Control
        Catch ex As Exception

        End Try
    End Sub

    Private Sub GBIRefrescos_Cambia_Valor() Handles GBIRefrescos.Cambia_Valor
        Try
            DT_Articulo_compra.Añade_Articulo(GBIRefrescos.Devuelve_Valor, DSEA.Tipo_Venta_Articulo.Combinado)

            CrtUnidades.Enabled = True
            GridArticulos.Enabled = False
            CrtUnidades.BackColor = Color.SlateGray
            GBIRefrescos.BackColor = System.Drawing.SystemColors.Control
        Catch ex As Exception

        End Try
    End Sub

#End Region

#Region "Eventos de Datos"
    Private Sub Carga_Datos()
        Try
            TA_Cabecera_Sobre.FillByTipo_Socio_Sobre(DS.Cabecera_Sobre, auxSocio, auxTiposobre)

            If DS.Cabecera_Sobre.Rows.Count = 0 Then
                TA_Cabecera_Sobre.Nuevo_Sobre(DS.Cabecera_Sobre, auxSocio)
            Else
                Refresca_Datos()
            End If

            Me.Cabecera_SobreBindingSource.Current.ROW.Recalcula_Total(DS.Linea_Sobre)

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub carga_articulos()
        ''cargamos los refrescos primero por que son lo que vamos utilizas
        TA_Articulos.FillByTipo_Articulo(DS.Articulos, 2, 0)
        TA_Articulos.FillByTipoCombinado(DseaCubatas.Articulos, 3, 4)
        TA_Articulos.FillByTipoCombinado(DseaRefrescos.Articulos, 2, 0)

        GridArticulos.Refrescar_Datos()
        GBICubatas.Refrescar_Datos()
        GBIRefrescos.Refrescar_Datos()
    End Sub
    Private Sub Guarda_Datos()
        Try
            Me.Validate()
            Me.Cabecera_SobreBindingSource.EndEdit()
            Me.Linea_SobreBindingSource.EndEdit()

            'If Gasto_Por_PersonaLabel1.Text <> "" Then
            TA_Cabecera_Sobre.Guardar(DS.Cabecera_Sobre)
            TA_Linea_Sobre.Guardar(DS.Linea_Sobre)
            TA_Articulos_Sobres.Guardar(DS.Articulos_Sobres)
            'End If

            Me.Carga_Datos()

            Me.Cabecera_SobreBindingSource.Current.ROW.Recalcula_Total(DS.Linea_Sobre)
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub Refresca_Datos()
        TA_Linea_Sobre.FillByCompleta(DS.Linea_Sobre, TryCast(Cabecera_SobreBindingSource.Current.Row, DSEA.Cabecera_SobreRow).Sobre)
        TA_Articulos_Sobres.Fill(DS.Articulos_Sobres)

    End Sub
#End Region

End Class